﻿// Models/Components/BaseComponent.cs
using Newtonsoft.Json;

namespace AmisSdk.Models.Components
{
    public class Page : BaseComponent
    {
        public override string Type => "page";

        /// <summary>
        /// 页面标题。
        /// </summary>
        [JsonProperty("title")]
        public string Title { get; set; }

        /// <summary>
        /// 页面主体内容，可以是单个组件或组件列表。
        /// </summary>
        [JsonProperty("body")]
        public object Body { get; set; }  // 可以是 BaseComponent 或 List<BaseComponent>

        /// <summary>
        /// 页面的操作栏，如按钮等。
        /// </summary>
        [JsonProperty("toolbar")]
        public object Toolbar { get; set; }  // 可选

        /// <summary>
        /// 页面布局，如是否启用区域划分等。
        /// </summary>
        [JsonProperty("layout")]
        public string Layout { get; set; } = "vertical";  // 默认垂直布局

        /// <summary>
        /// 页面级别的通知栏。
        /// </summary>
        [JsonProperty("alert")]
        public Alert Alert { get; set; }  // 可选

        // 其他页面相关属性，如布局、样式等
    }

    /// <summary>
    /// Alert 组件，用于在页面上显示通知信息。
    /// </summary>
    public class Alert
    {
        [JsonProperty("title")]
        public string Title { get; set; }

        [JsonProperty("body")]
        public string Body { get; set; }

        [JsonProperty("level")]
        public string Level { get; set; } = "info";  // info, warning, error, success
    }
}
